package collection;
public class IntegerCacheTests {
    public static void main(String[] args) {
        //编译时会进行自动封箱操作（将100这个基本数据类型转换为Integer对象类型）
        //它是如何自动封箱转换的呢？Integer.valueOf（100）
        //用断点测试
        //shift+f9 启动断点
        //f9 表示执行到下一个借点，没有下一个断点直接执行结束
        //f8 单步调试（逐条语句），直接执行下一步
        //f7 逐条语句执行，假如有自定义的方法则进入自定义方法
        //alt+shift+f7 强制进入JDK源代码方法，笔记本加一个fn键
        //shift+f8从方法内部出来，计入下一步
        Integer a=100;//IntegerCache.cache[i]
        Integer b=100;//IntegerCache.cache[i]
        Integer c=200;//new Integer(200)
        Integer d=200;//new Integer(200)
        System.out.println(a==b);//true
        System.out.println(d==c);//false
        doMethod();//在这一行点击f7试试
        doMethod();
    }
    static void doMethod() {
        Integer e=300;//Integer.valueOf(300);---->new Integer(300);
        int f=300;
        System.out.println(e == f);//e.intValue()=300比较的结果true，接下来要打印
    }
}
